home *** CD-ROM | disk | FTP | other *** search
/ Windows 6-Pak - Disc 4 / Windows 6-Pak (InfoMagic) (Disc 4) (1999).ISO / Text-Chat-Scripts / pp-320m.exe / pp300 / r-away.mrc < prev    next >
Encoding:
Text File  |  1998-10-10  |  25.8 KB  |  561 lines

  1. ; -----------------------------------------------------
  2. ; Peace and Protection (by misspai)
  3. ; -----------------------------------------------------
  4. ; Away system
  5. ; -----------------------------------------------------
  6. ; Ignoring blacklisted users (here
  7. ; to avoid logging their msgs)
  8. ; -----------------------------------------------------
  9. #ignoreblack on
  10. on black:open:?:if ($comchan($nick,0) == 0) halt
  11. on black:notice:*:?:{
  12.   if (($comchan($nick,0) == 0) && ($_isopen($nick) == $false)) {
  13.     .ignore -tipnu60 $wildsite
  14.     disp %col.target $+ $nick $+  sent a notice and is now being %col.att $+ ignored for 60 seconds (blacklisted) $_aopt($address,$nick,$fulladdress,$chan)
  15.   }
  16. }
  17. #ignoreblack end
  18. ; -----------------------------------------------------
  19. ; Unsolicited message ignore
  20. ; -----------------------------------------------------
  21. #ignoreunsolicit off
  22. on +1:open:?:{
  23.     if (($comchan($nick,0) == 0) && ($nick !isnotify)) {
  24.   set %_last.unsolicited $wildsite
  25.   .ignore -tipnu60 $wildsite
  26. if (%+unsolicited.notice) _tnotice $nick $_finalmsg($replace($_getmsg(Misc,UnsolicitNotice),&nick&,$nick))
  27. %-last.uctcp = *msg*
  28.   disp %col.att $+ Ignoring %col.target $+ $nick $+  %col.addr $+ ( $+ $wildsite $+ ) for 60 seconds for unsolicited message. %col.option $+ ShiftF4 to unignore.
  29.   halt
  30.     }
  31. }
  32. #ignoreunsolicit end
  33. ; -----------------------------------------------------
  34. ; Pager
  35. ; -----------------------------------------------------
  36. on 1:open:?:if ($1 == !page) { _pageme privatemessage $2- | halt } | elseif ($group(#_awaylog) == on) set %.wasopen. [ $+ [ $nick ] ] $false
  37. on 1:text:!page *:#:if ($2 == $me) _pageme channel $+ $chan $3-
  38. ctcp 1:PAGE:?:_pageme CTCP $2- | halt
  39. on 1:text:!page*:?:_pageme privatemessage $2-
  40. on 1:chat:!page*:_pageme DCCchat $2-
  41. alias -l _pageme {
  42.   if ($group(#_awaylog) == on) _awaylog ! You were paged by $nick via $_p2s($1)
  43.   if (%-flood. [ $+ [ $site ] ] >= %max.flood) halt
  44.   if (%+pager) set %.c.reply Your page has been received
  45.   else set %.c.reply Pager is disabled
  46.   if (%-pageravoid. [ $+ [ $nick ] ] ) { disps Page %col.att $+ ignored from $nick %col.misc $+ ( $+ $1- $+ ) | halt }
  47.   set -u30 %-pageravoid. [ $+ [ $nick ] ] $true
  48.   if ($1 == DCCchat) { 
  49.     set %.pm.addr $chat($nick).ip
  50.     msg =$nick ** %.c.reply **
  51.     set -u8 %_dpflood $calc( [ %_dpflood ] + 1)
  52.     if (%_dpflood > 5) {
  53.       msg =$nick PAGER FLOOD DETECTED
  54.       close -c $nick
  55.       disps DCC chat with %col.target $+ $nick $+  closed due to detection of a PAGER FLOOD
  56.     }
  57.   }
  58.   else {
  59.     set %.c.reply PAGE %.c.reply
  60.     set %.pm.addr $address
  61.   }
  62.   if (%+pager) {
  63.     if ($_isopen(@Pager)) aline @Pager %=
  64.     else open @Pager
  65.     aline @Pager You were paged by  $+ $nick
  66.     aline @Pager Time- $fulldate
  67.     aline @Pager Address- %.pm.addr
  68.     aline @Pager Page received via $_p2s($1)
  69.     if ($2 != $null) aline @Pager Message- $2-
  70.     if ((%+awaylog.on) && ($group(#_awaylog) == on)) {
  71.       set %.needhead $true
  72.       set %.num 1
  73.       :loop
  74.       set %.line $read -nl [ $+ [ %.num ] ] %_away.log
  75.       if (%.line == $null) goto done
  76.       if (: isin %.line) goto next
  77.       if ($left(%.line,1) == [) set %.line $gettok(%.line,2-,32)
  78.       set %.nick $gettok(%.line,1,32)
  79.       if (* isin %.nick) set %.nick $remove(%.nick,*)
  80.       elseif (< isin %.nick) set %.nick $remove($remove(%.nick,<),>)
  81.       else goto next
  82.       if ($nick == %.nick) {
  83.         if (%.needhead) { unset %.needhead | aline @Pager Logged- }
  84.         if ($left(%.line,1) == *) aline @Pager     * $_rchop(1,%.line)
  85.         else aline @Pager      $+ %.line
  86.       }
  87.       :next
  88.       inc %.num | goto loop
  89.     }
  90.     :done
  91.     window -b @Pager
  92.     splay $_adddir($_ppcfg(Misc,Pager))
  93.   }
  94.   if ($1 != DCCchat) _run.ctcp misc PAGE $2-
  95. }
  96. ; -----------------------------------------------------
  97. ; "Cancel away on keypress"
  98. ; -----------------------------------------------------
  99. raw 305:*:{
  100.   if (%_away.why != $null) {
  101.     if ($_not(%_+away.quiet)) aame $_finalmsg($replace($replace($replace($replace($_getmsg(away,back),&reason&,%_away.why),&when&,$remove($remove($timestamp,[),])),&pager&,$lower($_tf2o(%+pager.here))),&awaytime&,$duration($calc($ctime - %_away.time))))
  102.     if (($_ischan($active)) || ($left($active,1) == $chr(61)) || (%_+away.quiet)) dispa You are no longer marked as away from %[ $+ %_away.why $+ %]
  103.     if (%+awaylog.on) _awaylogback
  104.     unset %_away.* %_+awaywords.active
  105.     set %-last.idle $idle
  106.     if ($_not(%+accept.ebeeps.away)) .ebeeps on
  107.     if ((%+away.-ws) && (%_away.umode != $null)) umode + $+ %_away.umode
  108.     set %+pager %+pager.here
  109.   }
  110.   .disable #_awaylog
  111.   set %-last.idle $idle
  112.   .timer907 0 10 _chkidle
  113.   halt
  114. }
  115. ; -----------------------------------------------------
  116. ; Note to new chats if away
  117. ; -----------------------------------------------------
  118. #chataway off
  119. on 1:open:=:{
  120.   if (%_away.why != $null) {
  121.     if (%+pager) set %.tmsg ChatPagerOn | else set %.tmsg ChatPagerOff
  122.     describe =$nick $_finalmsg($replace($replace($replace($replace($_getmsg(away,%.tmsg),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  123.   }
  124.   if ($group(#_awaylog) == on) { _awaylog ! Chat opened with $nick | inc %_awaylog.event }
  125. }
  126. #chataway end
  127. ; -----------------------------------------------------
  128. ; Logging while away
  129. ; -----------------------------------------------------
  130. alias _awaylog {
  131.   if ($1 == !) write %_away.log  $+ %col.base $+ $timestamp %@ $+  $+ %col.base $2-
  132.   else write %_away.log $timestamp $2-
  133.   if ($1 == @) inc %_awaylog.event
  134. }
  135. alias _awaylogclose {
  136.   if (%_away.why == $null) halt
  137.   .dqwindow hide
  138.   unset %_+awaylog.closewait
  139.   set %.alc.num $query(0)
  140.   if (%.alc.num > 0) {
  141.     :loop
  142.     _awaylog ! Message window closed with $query(%.alc.num)
  143.     if ($_vd(.alc.num) > 0) goto loop
  144.     close -m
  145.   }
  146. }
  147. alias _awaylogback {
  148.   if ($1 == $null) set %.alb.cmd dispa
  149.   else {
  150.     window -ar @While $_center(640,100) 640 100 @Close %font.quick
  151.     titlebar @While you were away
  152.     set %.alb.cmd dispr @While
  153.   }
  154.   unset %.events
  155.   if (%_awaylog.msg > 0) set %.events , %_awaylog.msg $_plural(message,%_awaylog.msg)
  156.   if (%_awaylog.notice > 0) set %.events %.events $+ , %_awaylog.notice $_plural(notice,%_awaylog.notice)
  157.   if (%_awaylog.chan > 0) set %.events %.events $+ , %_awaylog.chan channel $_plural(message,%_awaylog.chan)
  158.   if (%_awaylog.ctcp > 0) set %.events %.events $+ , %_awaylog.ctcp $_plural(CTCP,%_awaylog.ctcp)
  159.   if (%_awaylog.file > 0) set %.events %.events $+ , %_awaylog.file file $_plural(event,%_awaylog.file)
  160.   if (%_awaylog.event > 0) {
  161.     if (%.events == $null) set %.events , %_awaylog.event misc. $_plural(event,%_awaylog.event)
  162.     else set %.events %.events $+ , %_awaylog.event other $_plural(event,%_awaylog.event)
  163.   }
  164.   if (%.events == $null) %.alb.cmd Nothing was logged while you were away.
  165.   else {
  166.     %.alb.cmd Logged while you were away- $_rchop(2,%.events)
  167.     if (%+disp.options) %.alb.cmd Press %col.option $+ CtrlF12 to view your away log.
  168.   }
  169.   .disable #_awaylog
  170.   unset %_awaylog.*
  171. }
  172. alias awaylog {
  173.   if ($1 == $null) {
  174.     set %_away.log $_ppdir $+ away.log
  175.     if ($_not($exists(%_away.log))) _error No away log exists to view!
  176.     window -c @Away
  177.     window -l @Away $_winpos(14%,7%,7%,7%) @Away %font.basic
  178.     titlebar @Away log
  179.     loadbuf @Away %_away.log
  180.     window -b @Away
  181.   }
  182.   elseif ($left($1,1) == f) {
  183.     if (%_away.why == $null) _error You aren't away, no need to flush away log
  184.     set %_away.log $_ppdir $+ away.log
  185.     if ($_not($exists(%_away.log))) _error No away log to flush!
  186.     .remove %_away.log
  187.     unset %_awaylog.msg %_awaylog.notice %_awaylog.chan %_awaylog.event %_awaylog.ctcp %_awaylog.file
  188.     _awaylog ! Flushed away log at $fulldate (Away reason- %_away.why $+ )
  189.     if ($window(@Away) != $null) window -c @Away
  190.     dispa Away log flushed. (emptied of current contents)
  191.   }
  192.   else {
  193.     if (%_away.why == $null) {
  194.       set %+awaylog.default $_o2tf($1)
  195.       disp When you are away, logging will default to $_tf2o(%+awaylog.default) $+ .
  196.     }
  197.     else {
  198.       set %+awaylog.on $_o2tf($1)
  199.       if ((%_away.why) && (%pp.net != Offline)) {
  200.         if (%+pager) set %.qa.raw $_getmsg(away,pageron)
  201.         else set %.qa.raw $_getmsg(away,pageroff)
  202.         .raw away : $+ $_finalmsg($replace($replace($replace($replace(%.qa.raw,&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  203.         if ($_not(%_+away.quiet)) if (%away.repeat > 60) .timer932 0 %away.repeat ame $_finalmsg($replace($replace($replace($replace($_getmsg(away,stillaway),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  204.       }
  205.       disp Away logging is now $_tf2o(%+awaylog.on) - This is a temporary change until you set back or exit.
  206.       disp To change the default settings, use this command when you are not away.
  207.       if (%+awaylog.on) .enable #_awaylog
  208.       else .disable #_awaylog
  209.     }
  210.   }
  211. }
  212. alias alog awaylog $1-
  213. alias -l _prepaword unset %-awword.* %_+awaywords.ok | .timer917 1 20 set %_+awaywords.ok $true
  214. on 1:text:*:#:{
  215.   if (%_away.why != $null) {
  216.     set %.wordies $_s2c(%awaywords)
  217.     if ((%+awaywords.on) && (%_+awaywords.ok) && (%awaywords != $null) && (%-awword. [ $+ [ $site ] ] == $null)) {
  218.       set %.text $replace($replace($replace($replace($replace($replace($_c2s($strip($1-)),.,$chr(32)),!,$chr(32)),?,$chr(32)),:,$chr(32)),>,$chr(32)),-,$chr(32))
  219.       set %.num $_numtok(44,%.wordies)
  220.       :loop1
  221.       if ($findtok(%.text,$gettok(%.wordies,%.num,44),32) != $null) {
  222.         n $nick $me is away ( $+ %_away.why $+ ) (one-time autoresponse to the word  $+ $gettok(%.wordies,%.num,44) $+ )
  223.         set %-awword. [ $+ [ $site ] ] y
  224.         goto next
  225.       }
  226.       if ($_vd(.num) > 0) goto loop1
  227.     }
  228.     :next
  229.     if ($group(#_awaylog) == on) {
  230.       if (@ isin $target) {
  231.         if (%+awaylog.logopnotice != $true) halt
  232.         _awaylog & - $+ $target : $nick $+ - $1- | inc %_awaylog.notice
  233.       }
  234.       else {
  235.         set %.scan1 $highlight $+ , $+ $me $+ , $+ %.wordies
  236.         set %.text $strip($1-)
  237.         set %.+log $false
  238.         set %.num $_numtok(44,%.scan1)
  239.         :loop2
  240.         set %.tok $gettok(%.scan1,%.num,44)
  241.         if (%.tok isin %.text) { set %.+log $true | set %.tok2  $+ %.tok $+  | if (%.tok2 !isin %.text) set %.text $replace(%.text,%.tok,%.tok2) }
  242.         if ($_vd(.num) > 0) goto loop2
  243.         if (%.+log) { _awaylog & < $+ $chan : $nick $+ > %.text | inc %_awaylog.chan }
  244.       }
  245.     }
  246.   }
  247. }
  248. #_awaylog off
  249. alias _timedclose {
  250.   if (%-closing. [ $+ [ $1 ] ] != cancel) set %-closing. [ $+ [ $1 ] ] $true
  251.   .timer 1 10 _dotimedclose $1
  252. }
  253. alias _dotimedclose {
  254.   if ($active == $1) halt
  255.   if (%-closing. [ $+ [ $1 ] ] == $true) closemsg $1
  256.   set %-closing. [ $+ [ $1 ] ]
  257. }
  258. on 1:input:?:if (%-closing. [ $+ [ $active ] ] ) set %-closing. [ $+ [ $active ] ] cancel
  259. on 1:text:*:?:{
  260.   if (%+awaylog.logmsg == $false) return
  261.   if ((%.wasopen. [ $+ [ $nick ] ] == $false) || (%-closing. [ $+ [ $nick ] ] == $true)) _timedclose $nick
  262.   elseif ((%+awaylog.logmsgifopen == $false) && ($_not(%_+awaylog.closewait))) return
  263.   _awaylog ? < $+ $nick $+ > $1-
  264.   inc %_awaylog.msg
  265. }
  266. on 1:action:*:?:{
  267.   if (%+awaylog.logmsg == $false) return
  268.   if ((%.wasopen. [ $+ [ $nick ] ] == $false) || (%-closing. [ $+ [ $nick ] ] == $true)) _timedclose $nick
  269.   elseif ((%+awaylog.logmsgifopen == $false) && ($_not(%_+awaylog.closewait))) return
  270.   _awaylog ? * $+ $nick $1-
  271.   inc %_awaylog.msg
  272. }
  273. on 1:action:*:#:{
  274.   set %.scan1 $highlight $+ , $+ $me $+ , $+ $_s2c(%awaywords)
  275.   set %.text $strip($1-)
  276.   set %.+log $false
  277.   set %.num $_numtok(44,%.scan1)
  278.   :loop
  279.   set %.tok $gettok(%.scan1,%.num,44)
  280.   if (%.tok isin %.text) { set %.+log $true | set %.tok2  $+ %.tok $+  | set %.text $replace(%.text,%.tok,%.tok2) }
  281.   if ($_vd(.num) > 0) goto loop
  282.   if (%.+log) { _awaylog & * $chan : $nick %.text | inc %_awaylog.chan }
  283. }
  284. on 1:notice:*:?:{
  285.   if (($1 == DCC) && (($2 == Chat) || ($2 == Send))) halt
  286.   set %.cc $comchan($nick,1)
  287.   if (($me isop %.cc) && (($_rchop(1,%.cc) isin $1-) || (llop isin $1-) || (opno isin $1-) || (opms isin $1-))) {
  288.     if (%+awaylog.logopnotice != $true) halt
  289.     _awaylog ? -@? : $nick $+ - $1- | inc %_awaylog.notice
  290.   }
  291.   else _awaylog ? - $+ $nick $+ - $1- | inc %_awaylog.notice
  292. }
  293. on 1:notice:*:#:{
  294.   if (@ isin $target) {
  295.     if (%+awaylog.logopnotice != $true) halt
  296.   }
  297.   else {
  298.     if (%+awaylog.logchannotice != $true) halt
  299.   }
  300.   _awaylog & - $+ $target : $nick $+ - $1- | inc %_awaylog.notice
  301. }
  302. on 1:ban:#:{
  303.   if ($nick == $me) {
  304.     set %.banned $_s2cs($_getnicks($chan,$banmask))
  305.     if (%.banned == $null) _awaylog @ $_color(mode) $+ *** $chan : You banned: $banmask (no matching users)
  306.     else _awaylog @ $_color(mode) $+ *** $chan : You banned: $banmask (users: %.banned $+ )
  307.   }
  308.   else {
  309.     set %.addr $me $+ ! $+ %-my.address
  310.     if ($banmask iswm %.addr) _awaylog @ $_color(mode) $+ *** $chan : $nick banned you! ( $+ $banmask $+ )
  311.   }
  312. }
  313. on 1:unban:#:{
  314.   if ($nick == $me) _awaylog @ $_color(mode) $+ *** $chan : You unbanned: $banmask
  315.   else {
  316.     set %.addr $me $+ ! $+ %-my.address
  317.     if ($banmask iswm %.addr) _awaylog @ $_color(mode) $+ *** $chan : $nick unbanned you. ( $+ $banmask $+ )
  318.   }
  319. }
  320. on 1:error:*:if ($server == $null) _awaylog ! Error from server : $1- | else _awaylog ! Error from $server : $1- | inc %_awaylog.event
  321. on 1:disconnect:_awaylog ! Disconnected from $server (selflag was %self.lag $+ ) | inc %_awaylog.event
  322. ctcp 1:DCC SEND:*:return
  323. ctcp 1:DCC RESUME:*:return
  324. ctcp 1:DCC ACCEPT:*:return
  325. ctcp 1:SOUND:*:halt
  326. ctcp 1:MP?:*:halt
  327. ctcp !1:*:?:if (%+awaylog.logctcp) { _awaylog ! CTCP of " $+ $1- $+ " from $nick | inc %_awaylog.ctcp }
  328. ctcp !1:*:#:if (%+awaylog.logchanctcp) { _awaylog ! $chan : CTCP of " $+ $1- $+ " from $nick | inc %_awaylog.ctcp }
  329. on 1:kick:#:{
  330.   if ($nick == $me) _awaylog @ $_color(mode) $+ *** $chan : You kicked: $knick ( $+ $1- $+ )
  331.   elseif ($knick == $me) _awaylog @ $_color(mode) $+ *** $chan : $nick kicked you! ( $+ $1- $+ )
  332. }
  333. on 1:deop:#:{
  334.   if ($nick == $me) _awaylog @ $_color(mode) $+ *** $chan : You deopped: $opnick
  335.   elseif ($opnick == $me) _awaylog @ $_color(mode) $+ *** $chan : $nick deopped you!
  336. }
  337. on 1:op:#:{
  338.   if ($nick == $me) _awaylog @ $_color(mode) $+ *** $chan : You opped: $opnick
  339.   elseif ($opnick == $me) _awaylog @ $_color(mode) $+ *** $chan : $nick opped you.
  340. }
  341. on 1:serverop:#:if ($opnick == $me) _awaylog @ $_color(mode) $+ *** $chan : $nick opped you.
  342. on 1:filesent:*:if (%+awaylog.logfiles) { _awaylog ! $filename sent to $nick | inc %_awaylog.file }
  343. on 1:filercvd:*:if (%+awaylog.logfiles) { _awaylog ! $filename received from $nick | inc %_awaylog.file }
  344. on 1:sendfail:*:if (%+awaylog.logfiles) { _awaylog ! $filename failed to send to $nick | inc %_awaylog.file }
  345. on 1:getfail:*:if (%+awaylog.logfiles) { _awaylog ! $filename failed to receive from $nick | inc %_awaylog.file }
  346. on 1:open:!:if (%+awaylog.logfiles) { _awaylog ! Fileserver opened to $nick | inc %_awaylog.file }
  347. on 1:close:!:if (%+awaylog.logfiles) { _awaylog ! Fileserver closed with $nick | inc %_awaylog.file }
  348. on 1:invite:#:_awaylog ! $nick invited you to $chan | inc %_awaylog.event
  349. on 1:join:#:if ($nick == $me) { _awaylog ! You joined $chan | inc %_awaylog.event }
  350. on 1:part:#:if ($nick == $me) { _awaylog ! You parted $chan | inc %_awaylog.event }
  351. on 1:open:=:if (($nick == %_qlogin.nick) || ($nick == $me)) halt | _awaylog ! Chat opened with $nick | inc %_awaylog.event
  352. on 1:close:=:if (($nick == %_qlogin.nick) || ($nick == $me)) halt | _awaylog ! Chat closed with $nick | inc %_awaylog.event
  353. on 1:topic:#:if ($nick == $me) { _awaylog @ $_color(mode) $+ *** $chan : You set topic " $+ $1- $+ " | inc %_awaylog.event }
  354. #_awaylog end
  355. alias _dotimedclose return
  356. ; -----------------------------------------------------
  357. ; Cleanup on start and connect
  358. ; -----------------------------------------------------
  359. on 1:load:set %.+ajl $true
  360. on 1:start:{
  361.   if (%.+ajl) { unset %.+ajl | return }
  362.   if ($_not(%+accept.ebeeps.away)) .ebeeps on
  363.   set %+pager %+pager.here
  364.   if (($me != %back.nick) && (%back.nick != $null)) nick %back.nick
  365.   unset %back.nick
  366. }
  367. on 1:connect:{
  368.   set %-last.idle $idle
  369.   .timer907 0 10 _chkidle
  370.   if (($_ppcfg(misc,RetainAwayOnSignon)) && (%_away.why != $null)) {
  371.     if ($group(#_awaylog) == on) { _awaylog ! Connected to $server : $port (nickname $me $+ ) | inc %_awaylog.event }
  372.     disps Setting away message...
  373.     if ($_not(%+accept.ebeeps.away)) .ebeeps off
  374.     if ((%+away.-ws) && (%_away.umode != $null)) umode - $+ %_away.umode
  375.     if (%+pager) set %.qa.raw $_getmsg(away,pageron)
  376.     else set %.qa.raw $_getmsg(away,pageroff)
  377.     .raw away : $+ $_finalmsg($replace($replace($replace($replace(%.qa.raw,&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  378.     _prepaword
  379.     if ($_not(%_+away.quiet)) {
  380.       if (($me != %away.nick) && (%away.nick != $null) && (%away.nick != off) && (%away.nick != none)) { set %back.nick $me | nick %away.nick }
  381.       if (%away.repeat > 60) .timer932 0 %away.repeat ame $_finalmsg($replace($replace($replace($replace($_getmsg(away,stillaway),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  382.     }
  383.   }
  384.   else {
  385.     if ((%+awaylog.on) && (%_away.why != $null)) _awaylogback !
  386.     .disable #_awaylog
  387.     if ($_not(%+accept.ebeeps.away)) .ebeeps on
  388.     unset %_away.* %_+awaywords.active
  389.     set %+pager %+pager.here
  390.     if (($me != %back.nick) && (%back.nick != $null)) nick %back.nick
  391.     unset %back.nick
  392.     set %+awaylog.on $false
  393.   }
  394. }
  395. ; -----------------------------------------------------
  396. ; Auto-away
  397. ; -----------------------------------------------------
  398. alias _chkidle {
  399.   set %.ci.idle $idle
  400.   if (%-last.idle > 0) {
  401.     if (%-last.idle > %.ci.idle) unset %-last.idle
  402.     else set %.ci.idle $calc(%.ci.idle - %-last.idle)
  403.   }
  404.   if ((%autoaway.idle > 0) && (%.ci.idle >= %autoaway.idle) && (%_away.why == $null)) {
  405.     set %.ci.old %+ask.pager
  406.     set %.ci.old2 %+awaylog.ask
  407.     set %+ask.pager $false
  408.     set %+awaylog.ask $false
  409.     set %+pager %+autoaway.pager
  410.     set %+awaylog.on %+autoaway.logging
  411.     if (%+autoaway.quiet) qa $replace($_getmsg(Away,AutoReason),&min&,$int($calc(%autoaway.idle / 60)))
  412.     else a $replace($_getmsg(Away,AutoReason),&min&,$int($calc(%autoaway.idle / 60)))
  413.     set %+ask.pager %.ci.old
  414.     set %+awaylog.ask %.ci.old2
  415.     .timer907 off
  416.   }
  417. }
  418. ; -----------------------------------------------------
  419. ; Away system aliases
  420. ; -----------------------------------------------------
  421. alias qa {
  422.   if (%_away.why == $null) set %.+firstaway $true
  423.   else unset %.+firstaway
  424.   if ($1 == $null) {
  425.     if (%_away.why == $null) _askr qa Away reason?
  426.     else _askr qa Away reason? (Use /back to return from being away)
  427.   }
  428.   else set %.qa.away.why $1-
  429.   set %.qa.page $_tf2o(%+pager.default)
  430.   if (%+ask.pager) _pentry _qa2 Pager on or off?( $+ %col.custdark $+ Enter for %col.custdark $+ $_tf2o(%+pager.default) $+ .)
  431.   _qa2
  432. }
  433. alias _qa2 {
  434.   if ($1 == $null) set %+pager %+pager.default
  435.   else set %+pager $_o2tf($1)
  436.   if (%+awaylog.ask) _pentry _qa3 Logging on or off?( $+ %col.custdark $+ Enter for %col.custdark $+ $_tf2o(%+awaylog.default) $+ .)
  437.   _qa3
  438. }
  439. alias _qa3 {
  440.   set %_away.why %.qa.away.why
  441.   if ($1 == $null) set %+awaylog.on %+awaylog.default
  442.   else set %+awaylog.on $_o2tf($1)
  443.   set %_away.ts $remove($remove($timestamp,[),])
  444.   set %_away.why $_ccdef(%_away.why)
  445.   if (%+pager) set %.qa.raw $_getmsg(away,pageron)
  446.   else set %.qa.raw $_getmsg(away,pageroff)
  447.   if (%+awaylog.on) {
  448.     if (%.+firstaway) {
  449.       set %_away.log $_ppdir $+ away.log
  450.       if ($exists(%_away.log)) .remove %_away.log
  451.       unset %_awaylog.msg %_awaylog.notice %_awaylog.chan %_awaylog.event %_awaylog.ctcp %_awaylog.file
  452.       _awaylog ! Set away ( $+ %_away.why $+ ) at $fulldate
  453.       if (%+awaylog.closemsg) {
  454.         set %_+awaylog.closewait $true
  455.         if (%awaylog.closedelay > 0) .timer914 1 %awaylog.closedelay _awaylogclose
  456.         else _awaylogclose
  457.       }
  458.       else unset %_+awaylog.closewait
  459.     }
  460.     else _awaylog ! Changed away ( $+ %_away.why $+ ) at $fulldate
  461.     .enable #_awaylog
  462.   }
  463.   if ($server != $null) .raw away : $+ $_finalmsg($replace($replace($replace($replace(%.qa.raw,&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  464.   if ($_not(%+accept.ebeeps.away)) .ebeeps off
  465.   if ((%+away.-ws) && (%pp.net != offline)) { set %.a.fix $remove($remove($remove($remove($remove($usermode,i),d),r),o),+) | if (%.a.fix != $null) { set %_away.umode %.a.fix | umode - $+ %.a.fix } }
  466.   set %_away.time $ctime
  467.   set %_away.title Away at $timestamp - [[ $+ %_away.why $+ ]]
  468.   set %_+away.quiet $true
  469.   _prepaword
  470.   if ($_not(%.+aw.dont.disp)) dispa You are now away: %[ $+ %_away.why $+ %] since %[ $+ %_away.ts $+ %] pager %[ $+ $lower($_tf2o(%+pager)) $+ %] log %[ $+ $lower($_tf2o(%+awaylog.on)) $+ %] 
  471.   unset %-+awayonnick
  472.   if (%.+aw.normal) {
  473.     set %_+away.quiet $false
  474.     if (($me != %away.nick) && (%away.nick != $null) && (%away.nick != off) && (%away.nick != none)) { set %back.nick $me | nick %away.nick | set %-+awayonnick $true }
  475.     else {
  476.       aame $_finalmsg($replace($replace($replace($replace($_getmsg(away,away),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  477.       if ((%away.repeat > 60) && ($server != $null)) .timer932 0 %away.repeat ame $_finalmsg($replace($replace($replace($replace($_getmsg(away,stillaway),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  478.     }
  479.   }
  480.   unset %.+aw.normal
  481. }
  482. alias qb {
  483.   if ($_not(%.+aw.dont.disp)) dispa You are no longer marked as away from %[ $+ %_away.why $+ %]
  484.   if (%+awaylog.on) _awaylogback
  485.   if ((%+away.-ws) && (%_away.umode != $null) && (%pp.net != offline)) umode + $+ %_away.umode
  486.   unset %_away.* %_+awaywords.active
  487.   set %_idle.back $idle
  488.   if ($_not(%+accept.ebeeps.away)) .ebeeps on
  489.   set %+pager %+pager.here
  490.   if (%pp.net != Offline) .raw away
  491.   if (($me != %back.nick) && (%back.nick != $null)) nick %back.nick
  492.   unset %back.nick
  493.   set %+awaylog.on $false
  494.   .timer932 off
  495. }
  496. alias away {
  497.   if (($_ischan($active)) || ($left($active,1) == $chr(61))) set %.+aw.dont.disp $true
  498.   set %.+aw.normal $true
  499.   qa $1-
  500. }
  501. alias back {
  502.   set %.aw.parms $1-
  503.   if (%_away.time == $null) {
  504.     if (($_ismask($1)) || ($1 ison $active) || ($_ischan($1))) _askyn _db2 You aren't away- still say you are back?(use /ban or /kb to ban someone)
  505.     _askyn _db2 You aren't away- still say you are back?
  506.   }
  507.   if (($_ismask($1)) || ($1 ison $active) || ($_ischan($1))) _askyn _db2 Say you are back?(use /ban or /kb to ban someone)
  508.   set %_away.gone $duration($calc($ctime - %_away.time))
  509.   if (%_+away.quiet) _pentry _db3 You set away quietly- Return quietly as well?( $+ %col.custdark $+ Enter for %col.custdark $+ OK, type %col.custdark $+ anything to return %col.custdark $+ normally)
  510.   _db3 n
  511. }
  512. alias _db2 {
  513.   set %_away.gone ??
  514.   set %_away.why stuff
  515.   _db3 n
  516. }
  517. alias _db3 {
  518.   if ($1 == $null) qb
  519.   else {
  520.     if (%.aw.parms != $null) set %_away.why %.aw.parms
  521.     if (($me != %back.nick) && (%back.nick != $null)) { set %-+backonnick $true | set %-bon.why %_away.why | set %-bon.gone %_away.gone }
  522.     else { unset %-+backonnick | aame $_finalmsg($replace($replace($replace($replace($_getmsg(away,back),&reason&,%_away.why),&when&,$remove($remove($timestamp,[),])),&pager&,$lower($_tf2o(%+pager.here))),&awaytime&,%_away.gone)) }
  523.     if (($_ischan($active)) || ($left($active,1) == $chr(61))) set %.+aw.dont.disp $true
  524.     qb
  525.   }
  526. }
  527. alias a away $1-
  528. alias b if (%+aliasb.to.ban) ban $1- | else back $1-
  529. alias pager {
  530.   if ($1 == $null) _quickhelp /pager
  531.   if ($left($1,1) == a) {
  532.     if ($2 == $null) _quickhelp /pager
  533.     set %+pager.default $_o2tf($2)
  534.     if (%_away.why != $null) set %+pager %+pager.default
  535.     if ((%_away.why) && (%pp.net != Offline)) {
  536.       if (%+pager) set %.qa.raw $_getmsg(away,pageron)
  537.       else set %.qa.raw $_getmsg(away,pageroff)
  538.       .raw away : $+ $_finalmsg($replace($replace($replace($replace(%.qa.raw,&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  539.       if ($_not(%_+away.quiet)) if (%away.repeat > 60) .timer932 0 %away.repeat ame $_finalmsg($replace($replace($replace($replace($_getmsg(away,stillaway),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  540.     }
  541.     disp When you are away, your pager will default to $_tf2o(%+pager.default) $+ .
  542.   }
  543.   elseif ($left($1,1) isin hb) {
  544.     if ($2 == $null) _quickhelp /pager
  545.     set %+pager.here $_o2tf($2)
  546.     if (%_away.why == $null) set %+pager %+pager.here
  547.     disp When you are not away, your pager will be $_tf2o(%+pager.here) $+ .
  548.   }
  549.   else {
  550.     set %+pager $_o2tf($1)
  551.     if ((%_away.why) && (%pp.net != Offline)) {
  552.       if (%+pager) set %.qa.raw $_getmsg(away,pageron)
  553.       else set %.qa.raw $_getmsg(away,pageroff)
  554.       .raw away : $+ $_finalmsg($replace($replace($replace($replace(%.qa.raw,&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  555.       if ($_not(%_+away.quiet)) if (%away.repeat > 60) .timer932 0 %away.repeat ame $_finalmsg($replace($replace($replace($replace($_getmsg(away,stillaway),&reason&,%_away.why),&when&,%_away.ts),&pager&,$lower($_tf2o(%+pager))),&logging&,$lower($_tf2o(%+awaylog.on))))
  556.     }
  557.     disp Your pager is currently $_tf2o(%+pager) - This is a temporary change until you set away, back, or exit.
  558.     disp To change the default settings, use /pager away/here on/off.
  559.   }
  560. }
  561.